package es.gob.jmulticard; import java.security.KeyStore; import java.security.PrivateKey; import java.security.Provider; import java.security.Security; import java.security.Signature; import java.util.Enumeration; import es.gob.jmulticard.jse.provider.DnieProvider; import es.gob.jmulticard.jse.smartcardio.SmartcardIoConnection; /** Pruebas de firma consecutiva en DNIe 100% Java. * @author Sergio Martínez Rico. */ public final class TestDoubleSign { private static final char[] PASSWORD = "password".toCharArray(); //$NON-NLS-1$ /** Main parta pruebas. * @param args No se usa. * @throws Exception En cualquier error. */ public static void main(final String[] args) throws Exception { TestDoubleSign.testDoubleSign(); } static void testDoubleSign() throws Exception { final Provider p = new DnieProvider(new SmartcardIoConnection()); Security.addProvider(p); final KeyStore ks = KeyStore.getInstance("DNI"); //$NON-NLS-1$ ks.load(null, PASSWORD); final Enumeration<String> aliases = ks.aliases(); while (aliases.hasMoreElements()) { System.out.println(aliases.nextElement()); } Signature signature = Signature.getInstance("SHA1withRSA"); //$NON-NLS-1$ signature.initSign((PrivateKey) ks.getKey("CertFirmaDigital", PASSWORD)); //$NON-NLS-1$ signature.update("Hola Mundo!!".getBytes()); //$NON-NLS-1$ signature.sign(); System.out.println("Primera firma generada correctamente"); //$NON-NLS-1$ signature = Signature.getInstance("SHA1withRSA"); //$NON-NLS-1$ signature.initSign((PrivateKey) ks.getKey("CertFirmaDigital", PASSWORD)); //$NON-NLS-1$ signature.update("Hola Mundo 2!!".getBytes()); //$NON-NLS-1$ signature.sign(); System.out.println("Segunda firma generada correctamente"); //$NON-NLS-1$ } }